/*
* This file is a part of the open-eBackup project.
* This Source Code Form is subject to the terms of the Mozilla Public License, v. 2.0.
* If a copy of the MPL was not distributed with this file, You can obtain one at
* http://mozilla.org/MPL/2.0/.
*
* Copyright (c) [2024] Huawei Technologies Co.,Ltd.
*
* THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
* EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
* MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
*/
#pragma once
#include <vector>
#include <string>
#include <iostream>
#include <map>
#include <fstream>
#include "VssBackup.h"

class VssLogWrapper : public VssBackupWrapper {
public:
    VssLogWrapper();
    ~VssLogWrapper();

    bool InitializeBackupContect(const VSS_SNAPSHOT_CONTEXT &context) override;
    bool DoAddComponentToPathList(PVSSCOMPONENTINFO sonComponentInfo, CComPtr<IVssWMComponent> pSonComponent,
        std::vector<std::string> exposeList, std::vector<std::wstring> wVolumePathList,
        std::map<std::string, std::string> &pathList);
    std::map<std::string, std::string> ObtainBackupFileSet(CComPtr<IVssExamineWriterMetadata> writerMetadata,
        const UINT componentCount, const std::string guid, std::vector<std::string> exposeList,
        std::vector<std::wstring> wVolumePathList) override;
};